Core.Test.registerTest({
	group: "mock",
	name: "Assert.that()",
	
	"Should require expected method call with default settings": function( )
    {
		var stub = { };
	        
		Assert.that( stub ).invokes( "method" );
		stub.method( );
		
		Assert.verify( );
    },
    
    "Should require expected method calls count": function( )
	{
		var stub = { };
		Assert.that( stub ).invokes( "method" ).calls( 2 );
        
        stub.method( );                
        stub.method( );                
        
		Assert.verify( );
    },
    
    "Should require expected args in invocation": function( )
    {
        var arg = { }, stub = { };

        Assert.that( stub ).invokes( "method" ).args( arg );
        stub.method( arg );                
     
		Assert.verify( );
    },
    
    "Should return expected value": function( )
    {
    	var arg = { }, stub = { };
    	
    	Assert.that( stub ).invokes( "method" ).args( arg ).returns( 12 );
    	Assert.that( stub ).invokes( "method" ).args( arg ).returns( 13 );
    	
    	Assert.equal( 12, stub.method( arg ) );
    	Assert.equal( 13, stub.method( arg ) );
    	
		Assert.verify( );
    }
});